CPUクロック

R8C/15には、高速(8MHz)と低速(125kHz)のオンチップオシレータと、
外部クロック入力端子(何故かメインクロックと呼ばれる・・・)があります。
CPUリセット直後は、低速オンチップオシレータ(しかも1/8分周で15.625kHz)で動作していますが、
メインクロックに20MHzまでの発振子を接続することで高速化が可能です。

ここでは外部クロックは使用せずに、内部の高速オンチップオシレータで、8MHzで駆動させる手順をメモとして残します。



/* 高速オンチップオシレータに切り替える */

prc0 = 1; // システムクロック関係レジスタの書き込み許可(p68)
hra00 = 1; // 高速オンチップオシレータ発振(p53)
asm("NOP"); // 発振安定待ち
asm("NOP");
asm("NOP");
asm("NOP");
hra01 = 1; // 高速オンチップオシレータ選択
cm16 = 0; // 分周なしモード
cm17 = 0;
cm06 = 0; // 非1/8分周モード(cm16,17設定有効)
prc0 = 0; // 書き込み禁止



・システムクロック関係レジスタにはプロテクト機能が付いている。
・高速オンチップオシレータを発振させてから、安定させるまでちょっと待ち、クロック選択を高速に切り替える。
・高速オンチップオシレータに切り替えてから分周数を設定し、その設定を有効に切り替える。

マニュアルを見ると、レジスタの設定順序について細かく指示がありますので、一読を・・・。


© Rakuten Group, Inc.